// pages/personal/personal.js
import req from "../../utils/req";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    moveDistance: 0,
    moveTransition: "",
    userInfo: {},
    weekList: [],
  },

  // 跳转到登录页面
  toLogin() {
    // 判断用户是否登录，如果已经登录就禁止前往登录页面
    if (!this.data.userInfo.nickname) {
      wx.navigateTo({
        url: "/pages/login/login",
      });
    }
  },

  handleTouchStart(e) {
    // touches数组用于记录当前屏幕上的所有手指
    // changedTouches数组用于记录当前屏幕上所有正在变化的手指
    // 获取第一次点击屏幕距离屏幕边缘的距离
    this.startY = e.touches[0].clientY;
    // console.log(this.startY);
    // 为了防止用户二次拖动的时候还有动画效果，将动画效果设置为空
    this.setData({
      moveTransition: "",
    });
  },

  handleTouchMove(e) {
    const moveY = e.touches[0].clientY;
    const moveDistance = moveY - this.startY;

    // 设置边界值
    if (moveDistance > 80 || moveDistance < 0) return;
    this.setData({
      moveDistance,
    });
  },

  handleTouchEnd() {
    // 松开手指的时候让下拉框变为0并且添加动画效果
    this.setData({
      moveDistance: 0,
      moveTransition: "transform 1s",
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: async function () {
    // 跳转页面也一定会加载onShow
    // 获取用户信息
    // 因为下面要直接使用storage中的信息，所以使用同步的
    const userInfoStr = wx.getStorageSync("userInfo");
    // console.log(userInfoStr);
    if (userInfoStr) {
      const userInfo = JSON.parse(userInfoStr);
      // console.log(userInfo);
      this.setData({
        userInfo,
      });
    }

    // 获取最近听过的歌
    const { weekData } = await req("/user/record", {
      uid: this.data.userInfo.userId,
    });
    const weekList = weekData.slice(0, 20).map((item) => {
      return item.song.al;
    });
    // console.log(weekList);
    this.setData({
      weekList,
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
});
